FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
MAINTAINER {{ maintainer }}

{% if install_type == 'binary' %}
    {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}

RUN yum -y install \
        openstack-neutron \
        openstack-neutron-ml2 \
        openvswitch \
        openstack-neutron-lbaas \
        python-openvswitch \
    && yum clean all

    {% elif base_distro in ['ubuntu'] %}

RUN apt-get -y install --no-install-recommends \
        iproute2 \
        neutron-plugin-ml2 \
        neutron-server \
        openvswitch-switch \
        python-openvswitch \
        neutron-lbaas-agent \
    && apt-get clean \
    && mkdir -p /usr/share/neutron \
    && ln -s /etc/neutron/api-paste.ini /usr/share/neutron/api-paste.ini

    {% endif %}
{% elif install_type == 'source' %}
    {% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}

RUN yum -y install \
        conntrack-tools \
        dnsmasq \
        dnsmasq-utils \
        ipset \
        openvswitch \
        python-openvswitch \
        uuid \
    && yum clean all

    {% elif base_distro in ['ubuntu', 'debian'] %}

RUN apt-get -y install --no-install-recommends \
        iputils-arping \
        conntrack \
        dnsmasq \
        dnsmasq-utils \
        iproute2 \
        ipset \
        iptables \
        openvswitch-switch \
        python-openvswitch \
        uuid-runtime \
    && apt-get clean

    {% endif %}

ADD neutron-base-archive /neutron-base-source
RUN ln -s neutron-base-source/* neutron \
    && useradd --user-group neutron \
    && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /neutron \
    && mkdir -p /etc/neutron /usr/share/neutron /var/lib/neutron /home/neutron \
    && cp -r /neutron/etc/* /etc/neutron/ \
    && cp -r /neutron/etc/neutron/* /etc/neutron/ \
    && cp /neutron/etc/api-paste.ini /usr/share/neutron \
    && mv /etc/neutron/neutron/ /etc/neutron/plugins/ \
    && chown -R neutron: /etc/neutron /usr/share/neutron /var/lib/neutron /home/neutron \
    && sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/neutron/rootwrap.conf

{% endif %}

COPY neutron_sudoers /etc/sudoers.d/kolla_neutron_sudoers
COPY extend_start.sh /usr/local/bin/kolla_extend_start

RUN usermod -a -G kolla neutron \
    && chmod 750 /etc/sudoers.d \
    && chmod 440 /etc/sudoers.d/kolla_neutron_sudoers \
    && touch /usr/local/bin/kolla_neutron_extend_start \
    && chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_neutron_extend_start
